/**
 * 
 */
package t4j.typeinfo.pets;

import java.util.HashMap;

/**
 * @author sz
 * 
 *         create time：2012-12-14
 */
public class PetCount {

	static class PetCounter extends HashMap<String, Integer> {

		public void count(String type) {

			Integer quantity = get(type);// 根据type获取MAP的统计数值

			if (quantity == null)// 如果未有值得就初始化
				put(type, 1);
			else
				put(type, quantity + 1);
		}
	}

	public static void countPets(PetCreator creator) {
		PetCounter counter = new PetCounter();

		for (Pet pet : creator.createArray(20)) {
			System.out.println(pet.getClass().getSimpleName() + " ");

			if (pet instanceof Pet)
				counter.count("Pet");
			if (pet instanceof Dog)
				counter.count("Dog");
			if (pet instanceof Mutt)
				counter.count("Mutt");
			if (pet instanceof Pug)
				counter.count("Pug");
			if (pet instanceof Cat)
				counter.count("Cat");
			if (pet instanceof Manx)
				counter.count("EgyptianMau");
			if (pet instanceof Manx)
				counter.count("Manx");
			if (pet instanceof Manx)
				counter.count("Cymric");
			if (pet instanceof Rodent)
				counter.count("Rodent");
			if (pet instanceof Rat)
				counter.count("Rat");
			if (pet instanceof Mouse)
				counter.count("Mouse");
			if (pet instanceof Hamster)
				counter.count("Hamster");
		}
		
		System.out.println("");
		
		System.out.println(counter);
	}

	public static void main(String[] args) {
		countPets(new ForNameCreator());
	}
}
